package com.sddz.pacs.service.impl;

import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.sddz.pacs.dto.PageModelParams;
import com.sddz.pacs.entity.HealthUser;
import com.sddz.pacs.entity.SysLog;
import com.sddz.pacs.entity.SysUser;
import com.sddz.pacs.mapper.SysLogMapper;
import com.sddz.pacs.service.SysLogService;
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
import com.sddz.pacs.util.ShiroUtils;
import com.sddz.pacs.util.StringUtils;
import org.springframework.stereotype.Service;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.List;

/**
 * <p>
 * 系统日志信息表 服务实现类
 * </p>
 *
 * @author 时代电子
 * @since 2018-09-18
 */
@Service
public class SysLogServiceImpl extends ServiceImpl<SysLogMapper, SysLog> implements SysLogService {

    @Override
    public PageInfo<SysLog> selectListByCondition(PageModelParams params) {
        //分页
        PageHelper.startPage(params.getPageNum(), params.getPageSize());

        SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        //获取当前登陆场对象
        SysUser sysUser= ShiroUtils.getUserEntity();
        EntityWrapper<SysLog> ew = new EntityWrapper<>();

            if (sysUser.getLevels()==0){
            //判断是否有查询条件
            if (params.getCondition()!=null){
                if (StringUtils.isNotEmpty(params.getCondition().get("startDate")) && StringUtils.isNotEmpty(params.getCondition().get("endDate"))){
                    try {
                        ew.between("CREATE_DATE",formatter.parse(params.getCondition().get("startDate")+""),formatter.parse(params.getCondition().get("endDate")+""));
                    } catch (ParseException e) {
                        e.printStackTrace();
                    }
                }
                if (StringUtils.isNotEmpty(params.getCondition().get("name"))){
                    ew.like("USER_NAME",params.getCondition().get("name")+"");
                }
                /*if (StringUtils.isNotEmpty(params.getCondition().get("name"))){
                    ew.like("USER_NAME",params.getCondition().get("name")+"");
                }*/
            }
        }

        if (sysUser.getLevels() ==1 && sysUser.getState().equals("0")){
            //判断是否有查询条件
            if (params.getCondition()!=null){
                if (StringUtils.isNotEmpty(params.getCondition().get("startDate")) && StringUtils.isNotEmpty(params.getCondition().get("endDate"))){
                    try {
                        ew.between("CREATE_DATE",formatter.parse(params.getCondition().get("startDate")+""),formatter.parse(params.getCondition().get("endDate")+""));
                    } catch (ParseException e) {
                        e.printStackTrace();
                    }
                }
                if (StringUtils.isNotEmpty(params.getCondition().get("name"))){
                    ew.like("USER_NAME",params.getCondition().get("name")+"");
                }
                if (sysUser.getState().equals("0")){
                    ew.eq("STATE",sysUser.getState());
                }
            }

        }



        List<SysLog> ealthUserList =  this.baseMapper.selectList(ew);


        return new PageInfo<>(ealthUserList);
    }
}
